bleh
[mqlkit.git] / Nikra EA.mq4
blob68d3e9918fcb71d2b8cd06bbeaeff1da25cd16fd
1 /*\r
2    Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []\r
3    Website: http://purebeam.biz\r
4    E-mail : purebeam@gmail.com\r
5 */\r
6 #property copyright "http://BigGame24.tripod.com/, NIKRA EA, 2010"\r
7 \r
8 int gi_76 = 0;\r
9 bool gi_80 = FALSE;\r
10 bool gi_84 = TRUE;\r
11 double g_pips_88 = 10.0;\r
12 double g_pips_96 = 50.0;\r
13 double gd_104 = 10.0;\r
14 double gd_112 = 10.0;\r
15 extern double Lots = 0.01;\r
16 double gd_128 = 1.0;\r
17 double gd_136 = 0.0;\r
18 extern bool UseHourTrade = FALSE;\r
19 extern int FromHourTrade = 6;\r
20 extern int ToHourTrade = 18;\r
21 double g_slippage_156 = 3.0;\r
22 double g_pips_164 = 20.0;\r
23 int gi_172 = 4;\r
24 bool gi_176 = FALSE;\r
25 double gd_180 = 20.0;\r
26 bool gi_188 = FALSE;\r
27 bool gi_192 = FALSE;\r
28 double gd_196 = 48.0;\r
29 extern int MagicNumber = 20000;\r
30 double g_price_208;\r
31 double gd_216;\r
32 double gd_unused_224;\r
33 double gd_unused_232;\r
34 double g_price_240;\r
35 double g_bid_248;\r
36 double g_ask_256;\r
37 double gd_264;\r
38 double gd_272;\r
39 double gd_288;\r
40 bool gi_296;\r
41 string gs_300 = "NIKRA EA";\r
42 int g_time_308 = 0;\r
43 int gi_312;\r
44 int gi_316 = 0;\r
45 double gd_320;\r
46 int g_pos_328 = 0;\r
47 int gi_332;\r
48 double gd_336 = 0.0;\r
49 bool gi_344 = FALSE;\r
50 bool gi_348 = FALSE;\r
51 bool gi_352 = FALSE;\r
52 int gi_356;\r
53 bool gi_360 = FALSE;\r
54 int g_datetime_364 = 0;\r
55 int g_datetime_368 = 0;\r
56 double gd_372;\r
57 double gd_380;\r
59 int init() {\r
60    gd_288 = MarketInfo(Symbol(), MODE_SPREAD) * Point;\r
61    return (0);\r
62 }\r
64 int deinit() {\r
65    return (0);\r
66 }\r
68 int start() {\r
69 Comment("BigGame24.tripod.com" \r
70          + "\n"        \r
71          + "________________________________"\r
72          + "\n"\r
73          + "NIKRA EA" \r
74          + "\n" \r
75          + "________________________________"  \r
76          + "\n" \r
77          + "Broker:         " + AccountCompany()\r
78          + "\n"\r
79          + "Time Local:    " + TimeToStr(TimeCurrent(), TIME_DATE|TIME_SECONDS)\r
80          + "\n"        \r
81          + "________________________________"  \r
82          + "\n" \r
83          + "Name:             " + AccountName() \r
84          + "\n" \r
85          + "Account Number:        " + AccountNumber()\r
86          + "\n" \r
87          + "Account Currency:      " + AccountCurrency()   \r
88          + "\n"\r
89          + "Account Leverage:      " + DoubleToStr(AccountLeverage(), 0) \r
90          + "\n"     \r
91          + "________________________________"\r
92          + "\n"\r
93          + "ALL ORDERS:            " + OrdersTotal()\r
94          + "\n"\r
95          + "________________________________"\r
96          + "\n"           \r
97          + "Account BALANCE:     " + DoubleToStr(AccountBalance(), 2)          \r
98          + "\n" \r
99          + "Account EQUITY:       " + DoubleToStr(AccountEquity(), 2)\r
100          + "\n" \r
101          + "Used MARGIN:             " + DoubleToStr(AccountMargin(), 2) \r
102          + "\n" \r
103          + "________________________________" \r
104          + "\n"\r
105          + "BigGame24.tripod.com");\r
106    double l_ord_lots_20;\r
107    double l_ord_lots_28;\r
108    double l_iclose_36;\r
109    double l_iclose_44;\r
110    string ls_0 = "2019.07.07";\r
111    int l_str2time_8 = StrToTime(ls_0);\r
112    if (TimeCurrent() >= l_str2time_8) {\r
113       Alert("http://BigGame24.tripod.com/");\r
114       return (0);\r
115    }\r
116    if (UseHourTrade) {\r
117       if (!(Hour() >= FromHourTrade && Hour() <= ToHourTrade)) {\r
118          Comment("This is not trading time.");\r
119          return (0);\r
120       }\r
121    }\r
122    if (gi_188) TrailingAlls(gd_104, gd_112, g_price_240);\r
123    if (gi_192) {\r
124       if (TimeCurrent() >= gi_312) {\r
125          CloseThisSymbolAll();\r
126          Print("Closed All due to TimeOut");\r
127       }\r
128    }\r
129    if (g_time_308 == Time[0]) return (0);\r
130    g_time_308 = Time[0];\r
131    double ld_12 = CalculateProfit();\r
132    if (gi_176) {\r
133       if (ld_12 < 0.0 && MathAbs(ld_12) > gd_180 / 100.0 * AccountEquityHigh()) {\r
134          CloseThisSymbolAll();\r
135          Print("Closed All due to Stop Out");\r
136          gi_360 = FALSE;\r
137       }\r
138    }\r
139    gi_332 = CountTrades();\r
140    if (gi_332 == 0) gi_296 = FALSE;\r
141    for (g_pos_328 = OrdersTotal() - 1; g_pos_328 >= 0; g_pos_328--) {\r
142       OrderSelect(g_pos_328, SELECT_BY_POS, MODE_TRADES);\r
143       if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;\r
144       if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {\r
145          if (OrderType() == OP_BUY) {\r
146             gi_348 = TRUE;\r
147             gi_352 = FALSE;\r
148             l_ord_lots_20 = OrderLots();\r
149             break;\r
150          }\r
151       }\r
152       if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {\r
153          if (OrderType() == OP_SELL) {\r
154             gi_348 = FALSE;\r
155             gi_352 = TRUE;\r
156             l_ord_lots_28 = OrderLots();\r
157             break;\r
158          }\r
159       }\r
160    }\r
161    if (gi_332 > 0 && gi_332 <= gi_172) {\r
162       RefreshRates();\r
163       gd_264 = FindLastBuyPrice();\r
164       gd_272 = FindLastSellPrice();\r
165       if (gi_348 && gd_264 - Ask >= g_pips_164 * Point) gi_344 = TRUE;\r
166       if (gi_352 && Bid - gd_272 >= g_pips_164 * Point) gi_344 = TRUE;\r
167    }\r
168    if (gi_332 < 1) {\r
169       gi_352 = FALSE;\r
170       gi_348 = FALSE;\r
171       gi_344 = TRUE;\r
172       gd_216 = AccountEquity();\r
173    }\r
174    if (gi_344) {\r
175       gd_264 = FindLastBuyPrice();\r
176       gd_272 = FindLastSellPrice();\r
177       if (gi_352) {\r
178          if (gi_80) {\r
179             fOrderCloseMarket(0, 1);\r
180             gd_320 = NormalizeDouble(gd_136 * l_ord_lots_28, gd_128);\r
181          } else gd_320 = fGetLots(OP_SELL);\r
182          if (gi_84) {\r
183             gi_316 = gi_332;\r
184             if (gd_320 > 0.0) {\r
185                RefreshRates();\r
186                gi_356 = OpenPendingOrder(1, gd_320, Bid, g_slippage_156, Ask, 0, 0, gs_300 + "-" + gi_316, MagicNumber, 0, HotPink);\r
187                if (gi_356 < 0) {\r
188                   Print("Error: ", GetLastError());\r
189                   return (0);\r
190                }\r
191                gd_272 = FindLastSellPrice();\r
192                gi_344 = FALSE;\r
193                gi_360 = TRUE;\r
194             }\r
195          }\r
196         } else {\r
197          if (gi_348) {\r
198             if (gi_80) {\r
199                fOrderCloseMarket(1, 0);\r
200                gd_320 = NormalizeDouble(gd_136 * l_ord_lots_20, gd_128);\r
201             } else gd_320 = fGetLots(OP_BUY);\r
202             if (gi_84) {\r
203                gi_316 = gi_332;\r
204                if (gd_320 > 0.0) {\r
205                   gi_356 = OpenPendingOrder(0, gd_320, Ask, g_slippage_156, Bid, 0, 0, gs_300 + "-" + gi_316, MagicNumber, 0, Lime);\r
206                   if (gi_356 < 0) {\r
207                      Print("Error: ", GetLastError());\r
208                      return (0);\r
209                   }\r
210                   gd_264 = FindLastBuyPrice();\r
211                   gi_344 = FALSE;\r
212                   gi_360 = TRUE;\r
213                }\r
214             }\r
215          }\r
216       }\r
217    }\r
218    if (gi_344 && gi_332 < 1) {\r
219       l_iclose_36 = iClose(Symbol(), 0, 2);\r
220       l_iclose_44 = iClose(Symbol(), 0, 1);\r
221       g_bid_248 = Bid;\r
222       g_ask_256 = Ask;\r
223       if (!gi_352 && !gi_348) {\r
224          gi_316 = gi_332;\r
225          if (l_iclose_36 > l_iclose_44) {\r
226             gd_320 = fGetLots(OP_SELL);\r
227             if (gd_320 > 0.0) {\r
228                gi_356 = OpenPendingOrder(1, gd_320, g_bid_248, g_slippage_156, g_bid_248, 0, 0, gs_300 + "-" + gi_316, MagicNumber, 0, HotPink);\r
229                if (gi_356 < 0) {\r
230                   Print(gd_320, "Error: ", GetLastError());\r
231                   return (0);\r
232                }\r
233                gd_264 = FindLastBuyPrice();\r
234                gi_360 = TRUE;\r
235             }\r
236          } else {\r
237             gd_320 = fGetLots(OP_BUY);\r
238             if (gd_320 > 0.0) {\r
239                gi_356 = OpenPendingOrder(0, gd_320, g_ask_256, g_slippage_156, g_ask_256, 0, 0, gs_300 + "-" + gi_316, MagicNumber, 0, Lime);\r
240                if (gi_356 < 0) {\r
241                   Print(gd_320, "Error: ", GetLastError());\r
242                   return (0);\r
243                }\r
244                gd_272 = FindLastSellPrice();\r
245                gi_360 = TRUE;\r
246             }\r
247          }\r
248       }\r
249       if (gi_356 > 0) gi_312 = TimeCurrent() + 60.0 * (60.0 * gd_196);\r
250       gi_344 = FALSE;\r
251    }\r
252    gi_332 = CountTrades();\r
253    g_price_240 = 0;\r
254    double ld_52 = 0;\r
255    for (g_pos_328 = OrdersTotal() - 1; g_pos_328 >= 0; g_pos_328--) {\r
256       OrderSelect(g_pos_328, SELECT_BY_POS, MODE_TRADES);\r
257       if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;\r
258       if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {\r
259          if (OrderType() == OP_BUY || OrderType() == OP_SELL) {\r
260             g_price_240 += OrderOpenPrice() * OrderLots();\r
261             ld_52 += OrderLots();\r
262          }\r
263       }\r
264    }\r
265    if (gi_332 > 0) g_price_240 = NormalizeDouble(g_price_240 / ld_52, Digits);\r
266    if (gi_360) {\r
267       for (g_pos_328 = OrdersTotal() - 1; g_pos_328 >= 0; g_pos_328--) {\r
268          OrderSelect(g_pos_328, SELECT_BY_POS, MODE_TRADES);\r
269          if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;\r
270          if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {\r
271             if (OrderType() == OP_BUY) {\r
272                g_price_208 = g_price_240 + g_pips_88 * Point;\r
273                gd_unused_224 = g_price_208;\r
274                gd_336 = g_price_240 - g_pips_96 * Point;\r
275                gi_296 = TRUE;\r
276             }\r
277          }\r
278          if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {\r
279             if (OrderType() == OP_SELL) {\r
280                g_price_208 = g_price_240 - g_pips_88 * Point;\r
281                gd_unused_232 = g_price_208;\r
282                gd_336 = g_price_240 + g_pips_96 * Point;\r
283                gi_296 = TRUE;\r
284             }\r
285          }\r
286       }\r
287    }\r
288    if (gi_360) {\r
289       if (gi_296 == TRUE) {\r
290          for (g_pos_328 = OrdersTotal() - 1; g_pos_328 >= 0; g_pos_328--) {\r
291             OrderSelect(g_pos_328, SELECT_BY_POS, MODE_TRADES);\r
292             if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;\r
293             if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) OrderModify(OrderTicket(), g_price_240, OrderStopLoss(), g_price_208, 0, Yellow);\r
294             gi_360 = FALSE;\r
295          }\r
296       }\r
297    }\r
298    return (0);\r
301 double ND(double ad_0) {\r
302    return (NormalizeDouble(ad_0, Digits));\r
305 int fOrderCloseMarket(bool ai_0 = TRUE, bool ai_4 = TRUE) {\r
306    int li_ret_8 = 0;\r
307    for (int l_pos_12 = OrdersTotal() - 1; l_pos_12 >= 0; l_pos_12--) {\r
308       if (OrderSelect(l_pos_12, SELECT_BY_POS, MODE_TRADES)) {\r
309          if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {\r
310             if (OrderType() == OP_BUY && ai_0) {\r
311                RefreshRates();\r
312                if (!IsTradeContextBusy()) {\r
313                   if (!OrderClose(OrderTicket(), OrderLots(), ND(Bid), 5, CLR_NONE)) {\r
314                      Print("Error close BUY " + OrderTicket());\r
315                      li_ret_8 = -1;\r
316                   }\r
317                } else {\r
318                   if (g_datetime_364 != iTime(NULL, 0, 0)) {\r
319                      g_datetime_364 = iTime(NULL, 0, 0);\r
320                      Print("Need close BUY " + OrderTicket() + ". Trade Context Busy");\r
321                   }\r
322                   return (-2);\r
323                }\r
324             }\r
325             if (OrderType() == OP_SELL && ai_4) {\r
326                RefreshRates();\r
327                if (!IsTradeContextBusy()) {\r
328                   if (!OrderClose(OrderTicket(), OrderLots(), ND(Ask), 5, CLR_NONE)) {\r
329                      Print("Error close SELL " + OrderTicket());\r
330                      li_ret_8 = -1;\r
331                   }\r
332                } else {\r
333                   if (g_datetime_368 != iTime(NULL, 0, 0)) {\r
334                      g_datetime_368 = iTime(NULL, 0, 0);\r
335                      Print("Need close SELL " + OrderTicket() + ". Trade Context Busy");\r
336                   }\r
337                   return (-2);\r
338                }\r
339             }\r
340          }\r
341       }\r
342    }\r
343    return (li_ret_8);\r
346 double fGetLots(int a_cmd_0) {\r
347    double l_lots_4;\r
348    int l_datetime_16;\r
349    switch (gi_76) {\r
350    case 0:\r
351       l_lots_4 = Lots;\r
352       break;\r
353    case 1:\r
354       l_lots_4 = NormalizeDouble(Lots * MathPow(gd_136, gi_316), gd_128);\r
355       break;\r
356    case 2:\r
357       l_datetime_16 = 0;\r
358       l_lots_4 = Lots;\r
359       for (int l_pos_20 = OrdersHistoryTotal() - 1; l_pos_20 >= 0; l_pos_20--) {\r
360          if (OrderSelect(l_pos_20, SELECT_BY_POS, MODE_HISTORY)) {\r
361             if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {\r
362                if (l_datetime_16 < OrderCloseTime()) {\r
363                   l_datetime_16 = OrderCloseTime();\r
364                   if (OrderProfit() < 0.0) l_lots_4 = NormalizeDouble(OrderLots() * gd_136, gd_128);\r
365                   else l_lots_4 = Lots;\r
366                }\r
367             }\r
368          } else return (-3);\r
369       }\r
370    }\r
371    if (AccountFreeMarginCheck(Symbol(), a_cmd_0, l_lots_4) <= 0.0) return (-1);\r
372    if (GetLastError() == 134/* NOT_ENOUGH_MONEY */) return (-2);\r
373    return (l_lots_4);\r
376 int CountTrades() {\r
377    int l_count_0 = 0;\r
378    for (int l_pos_4 = OrdersTotal() - 1; l_pos_4 >= 0; l_pos_4--) {\r
379       OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES);\r
380       if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;\r
381       if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)\r
382          if (OrderType() == OP_SELL || OrderType() == OP_BUY) l_count_0++;\r
383    }\r
384    return (l_count_0);\r
387 void CloseThisSymbolAll() {\r
388    for (int l_pos_0 = OrdersTotal() - 1; l_pos_0 >= 0; l_pos_0--) {\r
389       OrderSelect(l_pos_0, SELECT_BY_POS, MODE_TRADES);\r
390       if (OrderSymbol() == Symbol()) {\r
391          if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {\r
392             if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_156, Blue);\r
393             if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_156, Red);\r
394          }\r
395          Sleep(1000);\r
396       }\r
397    }\r
400 int OpenPendingOrder(int ai_0, double a_lots_4, double a_price_12, int a_slippage_20, double ad_24, int ai_32, int ai_36, string a_comment_40, int a_magic_48, int a_datetime_52, color a_color_56) {\r
401    int l_ticket_60 = 0;\r
402    int l_error_64 = 0;\r
403    int l_count_68 = 0;\r
404    int li_72 = 100;\r
405    switch (ai_0) {\r
406    case 2:\r
407       for (l_count_68 = 0; l_count_68 < li_72; l_count_68++) {\r
408          l_ticket_60 = OrderSend(Symbol(), OP_BUYLIMIT, a_lots_4, a_price_12, a_slippage_20, StopLong(ad_24, ai_32), TakeLong(a_price_12, ai_36), a_comment_40, a_magic_48, a_datetime_52, a_color_56);\r
409          l_error_64 = GetLastError();\r
410          if (l_error_64 == 0/* NO_ERROR */) break;\r
411          if (!(l_error_64 == 4/* SERVER_BUSY */ || l_error_64 == 137/* BROKER_BUSY */ || l_error_64 == 146/* TRADE_CONTEXT_BUSY */ || l_error_64 == 136/* OFF_QUOTES */)) break;\r
412          Sleep(1000);\r
413       }\r
414       break;\r
415    case 4:\r
416       for (l_count_68 = 0; l_count_68 < li_72; l_count_68++) {\r
417          l_ticket_60 = OrderSend(Symbol(), OP_BUYSTOP, a_lots_4, a_price_12, a_slippage_20, StopLong(ad_24, ai_32), TakeLong(a_price_12, ai_36), a_comment_40, a_magic_48, a_datetime_52, a_color_56);\r
418          l_error_64 = GetLastError();\r
419          if (l_error_64 == 0/* NO_ERROR */) break;\r
420          if (!(l_error_64 == 4/* SERVER_BUSY */ || l_error_64 == 137/* BROKER_BUSY */ || l_error_64 == 146/* TRADE_CONTEXT_BUSY */ || l_error_64 == 136/* OFF_QUOTES */)) break;\r
421          Sleep(5000);\r
422       }\r
423       break;\r
424    case 0:\r
425       for (l_count_68 = 0; l_count_68 < li_72; l_count_68++) {\r
426          RefreshRates();\r
427          l_ticket_60 = OrderSend(Symbol(), OP_BUY, a_lots_4, Ask, a_slippage_20, StopLong(Bid, ai_32), TakeLong(Ask, ai_36), a_comment_40, a_magic_48, a_datetime_52, a_color_56);\r
428          l_error_64 = GetLastError();\r
429          if (l_error_64 == 0/* NO_ERROR */) break;\r
430          if (!(l_error_64 == 4/* SERVER_BUSY */ || l_error_64 == 137/* BROKER_BUSY */ || l_error_64 == 146/* TRADE_CONTEXT_BUSY */ || l_error_64 == 136/* OFF_QUOTES */)) break;\r
431          Sleep(5000);\r
432       }\r
433       break;\r
434    case 3:\r
435       for (l_count_68 = 0; l_count_68 < li_72; l_count_68++) {\r
436          l_ticket_60 = OrderSend(Symbol(), OP_SELLLIMIT, a_lots_4, a_price_12, a_slippage_20, StopShort(ad_24, ai_32), TakeShort(a_price_12, ai_36), a_comment_40, a_magic_48, a_datetime_52, a_color_56);\r
437          l_error_64 = GetLastError();\r
438          if (l_error_64 == 0/* NO_ERROR */) break;\r
439          if (!(l_error_64 == 4/* SERVER_BUSY */ || l_error_64 == 137/* BROKER_BUSY */ || l_error_64 == 146/* TRADE_CONTEXT_BUSY */ || l_error_64 == 136/* OFF_QUOTES */)) break;\r
440          Sleep(5000);\r
441       }\r
442       break;\r
443    case 5:\r
444       for (l_count_68 = 0; l_count_68 < li_72; l_count_68++) {\r
445          l_ticket_60 = OrderSend(Symbol(), OP_SELLSTOP, a_lots_4, a_price_12, a_slippage_20, StopShort(ad_24, ai_32), TakeShort(a_price_12, ai_36), a_comment_40, a_magic_48, a_datetime_52, a_color_56);\r
446          l_error_64 = GetLastError();\r
447          if (l_error_64 == 0/* NO_ERROR */) break;\r
448          if (!(l_error_64 == 4/* SERVER_BUSY */ || l_error_64 == 137/* BROKER_BUSY */ || l_error_64 == 146/* TRADE_CONTEXT_BUSY */ || l_error_64 == 136/* OFF_QUOTES */)) break;\r
449          Sleep(5000);\r
450       }\r
451       break;\r
452    case 1:\r
453       for (l_count_68 = 0; l_count_68 < li_72; l_count_68++) {\r
454          l_ticket_60 = OrderSend(Symbol(), OP_SELL, a_lots_4, Bid, a_slippage_20, StopShort(Ask, ai_32), TakeShort(Bid, ai_36), a_comment_40, a_magic_48, a_datetime_52, a_color_56);\r
455          l_error_64 = GetLastError();\r
456          if (l_error_64 == 0/* NO_ERROR */) break;\r
457          if (!(l_error_64 == 4/* SERVER_BUSY */ || l_error_64 == 137/* BROKER_BUSY */ || l_error_64 == 146/* TRADE_CONTEXT_BUSY */ || l_error_64 == 136/* OFF_QUOTES */)) break;\r
458          Sleep(5000);\r
459       }\r
460    }\r
461    return (l_ticket_60);\r
464 double StopLong(double ad_0, int ai_8) {\r
465    if (ai_8 == 0) return (0);\r
466    return (ad_0 - ai_8 * Point);\r
469 double StopShort(double ad_0, int ai_8) {\r
470    if (ai_8 == 0) return (0);\r
471    return (ad_0 + ai_8 * Point);\r
474 double TakeLong(double ad_0, int ai_8) {\r
475    if (ai_8 == 0) return (0);\r
476    return (ad_0 + ai_8 * Point);\r
479 double TakeShort(double ad_0, int ai_8) {\r
480    if (ai_8 == 0) return (0);\r
481    return (ad_0 - ai_8 * Point);\r
484 double CalculateProfit() {\r
485    double ld_ret_0 = 0;\r
486    for (g_pos_328 = OrdersTotal() - 1; g_pos_328 >= 0; g_pos_328--) {\r
487       OrderSelect(g_pos_328, SELECT_BY_POS, MODE_TRADES);\r
488       if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;\r
489       if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)\r
490          if (OrderType() == OP_BUY || OrderType() == OP_SELL) ld_ret_0 += OrderProfit();\r
491    }\r
492    return (ld_ret_0);\r
495 void TrailingAlls(int ai_0, int ai_4, double a_price_8) {\r
496    int li_16;\r
497    double l_ord_stoploss_20;\r
498    double l_price_28;\r
499    if (ai_4 != 0) {\r
500       for (int l_pos_36 = OrdersTotal() - 1; l_pos_36 >= 0; l_pos_36--) {\r
501          if (OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES)) {\r
502             if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;\r
503             if (OrderSymbol() == Symbol() || OrderMagicNumber() == MagicNumber) {\r
504                if (OrderType() == OP_BUY) {\r
505                   li_16 = NormalizeDouble((Bid - a_price_8) / Point, 0);\r
506                   if (li_16 < ai_0) continue;\r
507                   l_ord_stoploss_20 = OrderStopLoss();\r
508                   l_price_28 = Bid - ai_4 * Point;\r
509                   if (l_ord_stoploss_20 == 0.0 || (l_ord_stoploss_20 != 0.0 && l_price_28 > l_ord_stoploss_20)) OrderModify(OrderTicket(), a_price_8, l_price_28, OrderTakeProfit(), 0, Aqua);\r
510                }\r
511                if (OrderType() == OP_SELL) {\r
512                   li_16 = NormalizeDouble((a_price_8 - Ask) / Point, 0);\r
513                   if (li_16 < ai_0) continue;\r
514                   l_ord_stoploss_20 = OrderStopLoss();\r
515                   l_price_28 = Ask + ai_4 * Point;\r
516                   if (l_ord_stoploss_20 == 0.0 || (l_ord_stoploss_20 != 0.0 && l_price_28 < l_ord_stoploss_20)) OrderModify(OrderTicket(), a_price_8, l_price_28, OrderTakeProfit(), 0, Red);\r
517                }\r
518             }\r
519             Sleep(1000);\r
520          }\r
521       }\r
522    }\r
525 double AccountEquityHigh() {\r
526    if (CountTrades() == 0) gd_372 = AccountEquity();\r
527    if (gd_372 < gd_380) gd_372 = gd_380;\r
528    else gd_372 = AccountEquity();\r
529    gd_380 = AccountEquity();\r
530    return (gd_372);\r
533 double FindLastBuyPrice() {\r
534    double l_ord_open_price_8;\r
535    int l_ticket_24;\r
536    double ld_unused_0 = 0;\r
537    int l_ticket_20 = 0;\r
538    for (int l_pos_16 = OrdersTotal() - 1; l_pos_16 >= 0; l_pos_16--) {\r
539       OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES);\r
540       if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;\r
541       if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderType() == OP_BUY) {\r
542          l_ticket_24 = OrderTicket();\r
543          if (l_ticket_24 > l_ticket_20) {\r
544             l_ord_open_price_8 = OrderOpenPrice();\r
545             ld_unused_0 = l_ord_open_price_8;\r
546             l_ticket_20 = l_ticket_24;\r
547          }\r
548       }\r
549    }\r
550    return (l_ord_open_price_8);\r
553 double FindLastSellPrice() {\r
554    double l_ord_open_price_8;\r
555    int l_ticket_24;\r
556    double ld_unused_0 = 0;\r
557    int l_ticket_20 = 0;\r
558    for (int l_pos_16 = OrdersTotal() - 1; l_pos_16 >= 0; l_pos_16--) {\r
559       OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES);\r
560       if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;\r
561       if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderType() == OP_SELL) {\r
562          l_ticket_24 = OrderTicket();\r
563          if (l_ticket_24 > l_ticket_20) {\r
564             l_ord_open_price_8 = OrderOpenPrice();\r
565             ld_unused_0 = l_ord_open_price_8;\r
566             l_ticket_20 = l_ticket_24;\r
567          }\r
568       }\r
569    }\r
570    return (l_ord_open_price_8);\r